package com.dingreading.cloud.soms.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;


import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 门店激活码详情表 实体类。
 *
 * @author EDY
 * @since 2025-10-29
 */
@Data
@Table("cmactivation_code")
public class CmactivationCode implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 激活码
     */
    private String activationCode;

    /**
     * 支付订单号
     */
    private String payOrderNo;

    /**
     * 激活码类型uid
     */
    private String activationTypeUid;

    /**
     * 激活码类型名称
     */
    private String activationTypeName;

    /**
     * 激活码金额
     */
    private Double activationTypeAmount;

    /**
     * 关联订单号
     */
    private String cmorderNo;

    /**
     * 关联服务单号
     */
    private String cmserviceUid;

    /**
     * 学生UID
     */
    private String studentUid;

    /**
     * 学生姓名
     */
    private String studentName;

    /**
     * 使用日期
     */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime usedTime;

    /**
     * 公司UID
     */
    private String corpUid;

    /**
     * 门店UID
     */
    private String storeUid;

    /**
     * 门店名称
     */
    private String storeName;

    /**
     * 激活码状态：0-未使用，1-已使用
     */
    private Integer status;

    /**
     * 创建时间
     */
    @Column(onInsertValue = "now()")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    /**
     * 最后修改时间
     */
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date editTime;

    /**
     * 添加人用户ID
     */
    private String addStaffUid;

    /**
     * 添加人姓名
     */
    private String addStaffName;

    /**
     * 最后修改人用户ID
     */
    private String lastStaffUid;

    /**
     * 最后修改人姓名
     */
    private String lastStaffName;

    /**
     * 激活码来源：0-总部分发，1-商城购买
     */
    private Integer source;


}
